package com.lagou.homework02;

/**
 * 定义一个长度为[16][16]的整型二维数组并输入或指定所有位置的元素值，分别实现二维数组中
 * 所有行和所有列中元素的累加和并打印。
 * 再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加和并打印。
 */
public class ArrayArraySumTest {
    public static void main(String[] args) {
        // 声明一个整型的[16][16]的二维数组
        int[][]  arr1 = new int[16][16];

        // 赋值
        int num = 1;
        for(int i = 0; i < arr1.length; i++ )   {

            for (int j = 0; j < arr1.length; j++)   {
                arr1[i][j] = num++;
            }
        }
        // 查看所赋的值
        for(int i = 0; i < arr1.length; i++)	{

            for(int j = 0; j < arr1[i].length; j++)	{

                System.out.print(arr1[i][j] + " ");
            }
            System.out.println();
        }

        // 所有行的累加
        for (int i = 0; i < arr1.length; i++)   {
            int sum_row = 0;//因为计算每行的累加和，所以换行时需要清零；所以声明一个局部变量
            for(int j = 0; j < arr1.length; j++)    {
                sum_row += arr1[i][j];
            }
            System.out.println("第" + (i+1) + "行的累加和是：" + sum_row );
        }
        System.out.println("--------------------------------------------------------------");
        // 所有列的累加
        for (int i = 0; i < arr1.length; i++)   {
            int sum_col = 0;
            for(int j = 0; j < arr1.length; j++)    {
                sum_col += arr1[j][i];
            }
            System.out.println("第" + (i+1) + "列的累加和是：" + sum_col );
        }
        System.out.println("--------------------------------------------------------------");
        int sum_left = 0;
        for (int i = 0; i < arr1.length; i++)   {

            for(int j = 0; j <= i; j++)    {
                sum_left += arr1[i][j];
            }
        }
        System.out.println("左上角到右下角的累加和是 " + sum_left);

        System.out.println("--------------------------------------------------------------");
        int sum_right = 0;
        for (int i = 0; i < arr1.length; i++)   {

            for(int j = arr1.length - 1; i + j >= arr1.length - 1; j--)    {
                sum_right += arr1[i][j];
            }
        }
        System.out.println("右上角到左下角的累加和是 " + sum_right);
    }
}
